#include <iostream>
#include <thread> // C++线程类的头文件
#include <mutex>
#include <unistd.h>

using namespace std;

mutex m; // 定义互斥锁

// 任务1
void task1()
{
    while (1)
    {
        m.lock();
        cout << "线程1负责读取触摸屏坐标" << endl;
        sleep(1);
        m.unlock();
    }
}

// 任务2
void task2(const char *str)
{
    while (1)
    {
        m.lock();
        cout << "线程2负责打印字符串: " << str << endl;
        sleep(1);
        m.unlock();
    }
}

void task3(int a, int b)
{
    while (1)
    {
        m.lock();
        cout << "线程3负责计算两个数的和: " << a + b << endl;
        sleep(1);
        m.unlock();
    }
}

int main()
{
    // 创建线程对象
    thread t1(task1);
    sleep(1);
    thread t2(task2, "hello world");
    sleep(1);
    thread t3(task3, 10, 20);

    while (1)
    {
        m.lock();
        cout << "主线程" << endl;
        sleep(1);
        m.unlock();
    }

    t1.join();
    t2.join();
    t3.join();
    return 0;
}